package com.cardone.platform.authority.dto;

import java.util.Date;
import java.util.List;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import org.springframework.data.annotation.CreatedBy;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedBy;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.annotation.Transient;

import com.cardone.common.dto.PaginationEntityDto;
import com.cardone.platform.authority.po.RolePermission;

/**
 * 角色与许可
 * 
 * @author yaoht
 * 
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
public class RolePermissionDto extends RolePermission implements PaginationEntityDto {
	/**
	 * 版本号
	 */
	@Transient
	private static final long serialVersionUID = 425035341458845329L;

	/**
	 * 角色与许可
	 * 
	 * @return 角色与许可
	 */
	public static RolePermissionDto newRolePermission() {
		return new RolePermissionDto();
	}

	/**
	 * 开始时间
	 */
	@Transient
	private String beginDateStr;

	/**
	 * 创建人编码
	 */
	@Transient
	@CreatedDate
	private String createdByCode;

	/**
	 * 创建人标识
	 */
	@Transient
	@CreatedBy
	private String createdById;

	/**
	 * 创建人名称
	 */
	@Transient
	private String createdByName;

	/**
	 * 创建时间
	 */
	@Transient
	private Date createdDate;

	/**
	 * 创建时间
	 */
	@Transient
	private String createdDateStr;

	/**
	 * 结束时间
	 */
	@Transient
	private String endDateStr;

	/**
	 * 标识集合
	 */
	@Transient
	private List<String> idList;

	/**
	 * 标识集合
	 */
	@Transient
	private String ids;

	/**
	 * 修改人编码
	 */
	@Transient
	private String lastModifiedByCode;

	/**
	 * 修改人标识
	 */
	@Transient
	@LastModifiedBy
	private String lastModifiedById;

	/**
	 * 修改人名称
	 */
	@Transient
	private String lastModifiedByName;

	/**
	 * 修改时间
	 */
	@Transient
	@LastModifiedDate
	private Date lastModifiedDate;

	/**
	 * 修改时间
	 */
	@Transient
	private String lastModifiedDateStr;

	/**
	 * 分页号
	 */
	@Transient
	private int paginationNo;

	/**
	 * 分页大小
	 */
	@Transient
	private int paginationSize;
}